package com.dongbo.recorder.screenrecord.utils;

import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.text.TextUtils;

import java.util.ArrayList;
import java.util.List;

/**
 * description：
 * author：lutengxuan
 * CreateDate：2020-03-03
 */
public class AppMarketUtils {

    /**
     * 判断应用市场是否存在的方法
     *
     * @param context
     * @param packageName 主流应用商店对应的包名
     *                    //腾讯应用宝
     *                    "com.tencent.android.qqdownloader",
     *                    //360手机助手
     *                    "com.qihoo.appstore",
     *                    //百度手机助手
     *                    "com.baidu.appsearch",
     *                    //小米应用商店
     *                    "com.xiaomi.market",
     *                    //华为应用商店
     *                    "com.huawei.appmarket",
     *                    //Google Play Store
     *                    "com.android.vending",
     *                    //魅族应用市场
     *                    "com.meizu.mstore",
     *                    //豌豆荚
     *                    "com.wandoujia.phoenix2",
     *                    //91手机助手
     *                    "com.dragon.android.pandaspace",
     *                    //PP手机助手
     *                    "com.pp.assistant",
     *                    //OPPO应用商店
     *                    "com.oppo.market",
     *                    //VIVO应用商店
     *                    "com.bbk.appstore",
     *                    //搜狗应用市场
     *                    "com.sogou.androidtool",
     *                    //三星应用商店
     *                    "com.sec.android.app.samsungapps",
     *                    //联想应用商店
     *                    "com.lenovo.leos.appstore",
     *                    //中兴应用商店
     *                    "zte.com.market",
     *                    //安智应用商店
     *                    "com.hiapk.marketpho",
     *                    //应用汇
     *                    "com.yingyonghui.market",
     *                    //机锋应用市场
     *                    "com.mappn.gfan",
     *                    //安卓市场
     *                    "com.hiapk.marketpho",
     *                    //GO商店
     *                    "cn.goapk.market",
     *                    //酷派应用商店
     *                    "com.yulong.android.coolmart",
     *                    //酷市场
     *                    "com.coolapk.market",
     *                    //金立软件商店
     *                    "com.gionee.aora.market"
     */
    public static boolean isAvilible(Context context, String packageName) {
        // 获取packagemanager
        final PackageManager packageManager = context.getPackageManager();
        // 获取所有已安装程序的包信息
        List<PackageInfo> pinfo = packageManager.getInstalledPackages(0);
        // 用于存储所有已安装程序的包名
        List<String> pName = new ArrayList<String>();
        // 从pinfo中将包名字取出
        if (pinfo != null) {
            for (int i = 0; i < pinfo.size(); i++) {
                String pf = pinfo.get(i).packageName;
                pName.add(pf);
            }
        }
        // 判断pName中是否有目标程序的包名，有true，没有false
        return pName.contains(packageName);
    }

    /**
     * 启动到应用商店app详情界面
     *
     * @param appPkg    目标App的包名
     * @param marketPkg 应用商店包名 ,如果为""则由系统弹出应用商店列表供用户选择,否则调转到目标市场的应用详情界面
     */
    public static void launchAppDetail(Context mContext, String appPkg, String marketPkg) {
        try {
            if (TextUtils.isEmpty(appPkg)) {
                return;
            }
            Uri uri = Uri.parse("market://details?id=" + appPkg);
            Intent intent = new Intent(Intent.ACTION_VIEW, uri);
            if (!TextUtils.isEmpty(marketPkg)) {
                intent.setPackage(marketPkg);
            }
            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            mContext.startActivity(intent);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 没有应用市场，去安装
     */
    public static void anzApp(Context mContext, String url) {
        try {
            Uri uri = Uri.parse(url);
            Intent intent = new Intent(Intent.ACTION_VIEW, uri);
            mContext.startActivity(intent);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}
